/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tesoreria.bc;


import java.util.List;
import javax.ejb.Local;
import javax.faces.model.SelectItem;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.PersonaJuridica;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.be.Solicitante;
import org.cip.esymons.tesoreria.adapters.CuotasPorAnio;
import org.cip.esymons.tesoreria.adapters.DeudaCuentaIngreso;
import org.cip.esymons.tesoreria.adapters.VerDeuda;
import org.cip.esymons.tesoreria.be.BeneficiarioPagocolegiatura;
import org.cip.esymons.tesoreria.be.DetPagoAgrupado;
import org.cip.esymons.tesoreria.be.DocumentoPago;
import org.cip.esymons.tesoreria.be.EnumMeses;
import org.cip.esymons.tesoreria.be.MovimientoCuenta;

/**
 *
 * @author Administrador
 */
@Local
public interface RealizarPagoLocal {

    List<CuotasPorAnio> mostrarDeudaCuotas();

    @javax.ejb.Remove
    public void guardarPago();

    @javax.ejb.Remove
    void cancelar();

    String mostraDeudaPorCuentaIngreso();

    DocumentoPago getDocumentoPago();

    void setDocumentoPago(DocumentoPago documentoPago);

    int getTipoBusquedaDNICIP();

    void setTipoBusquedaDNICIP(int tipoBusquedaDNICIP);

    Solicitante getSolicitanteSeleccionado();

    void setSolicitanteSeleccionado(Solicitante solicitanteSeleccionado);

    PersonaNatural getPersonaSeleccionada();

    void setPersonaSeleccionada(PersonaNatural personaSeleccionada);

    PersonaJuridica getEmpresaSeleccionada();

    void setEmpresaSeleccionada(PersonaJuridica empresaSeleccionada);
     
    VerDeuda getVerDeuda();

    void setVerDeuda(VerDeuda verDeuda);

    @javax.annotation.PostConstruct
    public void crear();

    void buscarPersona(String dnioNroCip);

    String getFijarSerie();

    List<VerDeuda> getListaDeuda();

    void setListaDeuda(List<VerDeuda> listaDeuda);

    List<DetPagoAgrupado> mostrarDeudaEventos();

    List<DetPagoAgrupado> mostrarDeudaMulta();

    List<DetPagoAgrupado> mostrarDeudaOtros();

    List<BeneficiarioPagocolegiatura> getListaBeneficiarios();

    void setListaBeneficiarios(List<BeneficiarioPagocolegiatura> listaBeneficiarios);

    BeneficiarioPagocolegiatura getBeneficiarioSeleccionado();

    void setBeneficiarioSeleccionado(BeneficiarioPagocolegiatura beneficiarioSeleccionado);

    void buscarBeneficiario(String dnioNroCip);

    int getTipoBusquedaDNICIPBene();

    void setTipoBusquedaDNICIPBene(int tipoBusquedaDNICIPBene);

    void seleccionarBeneficiario();

    boolean isPagoParcial();

    void setPagoParcial(boolean pagoParcial);

    Double getTotalPagar();

    boolean isAlterarDeudaTotal();

    void setAlterarDeudaTotal(boolean alterarDeudaTotal);

    List<DetPagoAgrupado> mostrarDeudaFraccioanamiento();

    MovimientoCuenta getMovimientoCuenta();

    void setMovimientoCuenta(MovimientoCuenta movimientoCuenta);

    void nuevoMovimientoCuenta();

    void grabarMovimientoCuenta();

    boolean isHabilitadoFijarMonto();

    void setHabilitadoFijarMonto(boolean habilitadoFijarMonto);

    int getCantidadPagosVarios();

    void setCantidadPagosVarios(int cantidadPagosVarios);

    SelectItem[] getEstadosDocuemntoPagoItems();

    void pagarDeuda(Long codigoDocumento);

    List<DetPagoAgrupado> mostrarDeudaColegiatura();

    boolean seleccionarCuotas();

    boolean seleccionarCuotasBeneficiario();

    void reporteCert(DocumentoPago docPago);

    Colegiado getColegiadoTemporal();

    void setColegiadoTemporal(Colegiado colegiadoTemporal);

    DeudaCuentaIngreso getDeudaCuentaIngreso();

    void setDeudaCuentaIngreso(DeudaCuentaIngreso deudaCuentaIngreso);
    
    public List<DocumentoPago> realizarPagoCobroPlanilla(EnumMeses mesPago, int anioPago);

    /**
     * @return the listaPagosARealizar
     */
    public List<DetPagoAgrupado> getListaPagosARealizar();

    /**
     * @param listaPagosARealizar the listaPagosARealizar to set
     */
    public void setListaPagosARealizar(List<DetPagoAgrupado> listaPagosARealizar);

    /**
     * @return the deudaTotal
     */
    public Double getDeudaTotal() ;

    /**
     * @param deudaTotal the deudaTotal to set
     */
    public void setDeudaTotal(Double deudaTotal) ;

    /**
     * @return the seleccionadoEventos
     */
    public boolean isSeleccionadoEventos() ;

    /**
     * @param seleccionadoEventos the seleccionadoEventos to set
     */
    public void setSeleccionadoEventos(boolean seleccionadoEventos);

    /**
     * @return the seleccionadoMultas
     */
    public boolean isSeleccionadoMultas();

    /**
     * @param seleccionadoMultas the seleccionadoMultas to set
     */
    public void setSeleccionadoMultas(boolean seleccionadoMultas);

    /**
     * @return the seleccionadoFraccionamiento
     */
    public boolean isSeleccionadoFraccionamiento();

    /**
     * @param seleccionadoFraccionamiento the seleccionadoFraccionamiento to set
     */
    public void setSeleccionadoFraccionamiento(boolean seleccionadoFraccionamiento);
    /**
     * @return the seleccionadoOtros
     */
    public boolean isSeleccionadoOtros();

    /**
     * @param seleccionadoOtros the seleccionadoOtros to set
     */
    public void setSeleccionadoOtros(boolean seleccionadoOtros) ;
    /**
     * @return the seleccionadoColegiatura
     */
    public boolean isSeleccionadoColegiatura();

    /**
     * @param seleccionadoColegiatura the seleccionadoColegiatura to set
     */
    public void setSeleccionadoColegiatura(boolean seleccionadoColegiatura);

    /**
     * @return the seleccionadoEventosBen
     */
    public boolean isSeleccionadoEventosBen() ;

    /**
     * @param seleccionadoEventosBen the seleccionadoEventosBen to set
     */
    public void setSeleccionadoEventosBen(boolean seleccionadoEventosBen);

    /**
     * @return the seleccionadoMultasBen
     */
    public boolean isSeleccionadoMultasBen();

    /**
     * @param seleccionadoMultasBen the seleccionadoMultasBen to set
     */
    public void setSeleccionadoMultasBen(boolean seleccionadoMultasBen);

    /**
     * @return the seleccionadoFraccionamientoBen
     */
    public boolean isSeleccionadoFraccionamientoBen();

    /**
     * @param seleccionadoFraccionamientoBen the seleccionadoFraccionamientoBen to set
     */
    public void setSeleccionadoFraccionamientoBen(boolean seleccionadoFraccionamientoBen);

    /**
     * @return the seleccionadoOtrosBen
     */
    public boolean isSeleccionadoOtrosBen();

    /**
     * @param seleccionadoOtrosBen the seleccionadoOtrosBen to set
     */
    public void setSeleccionadoOtrosBen(boolean seleccionadoOtrosBen);

    /**
     * @return the seleccionadoColegiaturaBen
     */
    public boolean isSeleccionadoColegiaturaBen();

    /**
     * @param seleccionadoColegiaturaBen the seleccionadoColegiaturaBen to set
     */
    public void setSeleccionadoColegiaturaBen(boolean seleccionadoColegiaturaBen);

    public Double totalDeudaEventos();

    public Double totalDeudaMulta();

    public Double totalDeudaOtros();

    public Double totalDeudaFraccionamiento();

    public Double totalDeudaColegiatura();
}
